﻿/// -----------------------------------------------------------------
/// IMvePublicService.cs: this is the service contract compatible with original WCF exe.
/// connections to the Database.
/// License: see http://mve.codeplex.com/license; All Rights follows the MS-PL
/// Current owner: shiniwa
/// The project decription: please refer to http://codeplex.com/mve/
/// -----------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace MVEContentSvc
{
    /*
     * 日本SGI株式会社
     * ヨハンソン・ヘンリク
     * johansson@sgi.co.jp
     * 
     * Change Log:
     * ---------------------------------------------------------------------------
     * 2009.01.07	Johansson Henrik		Class Created.
     * 2009.01.15							Marked ClipSegments as Ignore. This operation
     *										was never called on the original Service, so
     *										it should be safe to ignore it here. The Operation
     *										is still included in the contract, but it will 
     *										Throw if any one tries to call it.
     * 2009.01.16							Changed name to match Pascal casing.
     */
    // NOTE: If you change the interface name "IService1" here, you must also update the reference to "IService1" in Web.config.
    [ServiceContract]
    public interface IMvePublicService
    {
        #region Not Implemented Contracts
        #endregion

        #region Implemented Contracts
        #endregion

        #region Broken Contracts


        /// <summary>
        ///	What is the difference between this one and the Clip($clipId)??
        ///	Also, it would appear this method is never called.
        ///	Ignore! 
        /// </summary>
        /// <remarks>Not Implemented.</remarks>
        [OperationContract]
        string QueryClips(Guid userId);

        /// <summary>
        /// Cannot confirm output, server returns 404
        /// Confirm this output by the data that came out of the original server.
        /// Use the MeetServerConnector.cs for this.
        /// it would appear this method is never called.
        /// Ignore!
        /// </summary>
        /// <remarks>Not Implemented.</remarks>
        [OperationContract]
        string ClipSegments(Guid userId, int clipId);

        #endregion

        #region Tested Contracts

        /// <summary>
        /// string QuerySegmentByKeyword(Guid userId, string keyword);
        /// </summary>
        [OperationContract]
        string QuerySegmentByKeyword(Guid userId, string keyword);

        /// <summary>
        /// string RelatedSegments(Guid userId, int segmentId);
        /// </summary>
        [OperationContract]
        string RelatedSegments(Guid userId, int segmentId);

        /// <summary>
        /// bool SaveMap(Guid userId, string map);
        /// </summary>
        [OperationContract]
        bool SaveMap(Guid userId, string map);

        /// <summary>
        /// string LoadMap(Guid userId);
        /// </summary>
        [OperationContract]
        string LoadMap(Guid userId);

        /// <summary>
        /// bool AddKeywordToIdeaBasket(Guid userId, string keyword);
        /// </summary>
        [OperationContract]
        bool AddKeywordToIdeaBasket(Guid userId, string keyword);

        /// <summary>
        /// bool DeleteIdeaBasketKeyword(Guid userId, string keyword);
        /// </summary>
        [OperationContract]
        bool DeleteIdeaBasketKeyword(Guid userId, string keyword);

        /// <summary>
        /// Guid LogOn(string logonId, string password);
        /// </summary>
        [OperationContract]
        Guid LogOn(string logonId, string password);

        /// <summary>
        /// bool LogOff(Guid userId);
        /// </summary>
        [OperationContract]
        bool LogOff(Guid userId);

        /// <summary>
        /// bool AddBookmark(Guid userId, int segmentId);
        /// </summary>
        [OperationContract]
        bool AddBookmark(Guid userId, int segmentId);

        /// <summary>
        /// bool DeleteBookmark(Guid userId, int segmentId);
        /// </summary>
        [OperationContract]
        bool DeleteBookmark(Guid userId, int segmentId);

        /// <summary>
        /// string QueryBookmarks(Guid userId);
        /// </summary>
        [OperationContract]
        string QueryBookmarks(Guid userId);

        /// <summary>
        /// bool AddKeywordToSegment(Guid userId, int segmentId, string keyword);
        /// </summary>
        [OperationContract]
        bool AddKeywordToSegment(Guid userId, int segmentId, string keyword);

        /// <summary>
        /// bool DeleteKeyword(Guid userId, int keywordId);
        /// </summary>
        [OperationContract]
        bool DeleteKeyword(Guid userId, int keywordId);

        /// <summary>
        /// string QueryKeywords(Guid userId);
        /// </summary>
        [OperationContract]
        string QueryKeywords(Guid userId);

        /// <summary>
        /// string Clip(Guid userId, int clipId);
        /// </summary>
        [OperationContract]
        string Clip(Guid userId, int clipId);

        /// <summary>
        /// string ClipBySegmentId(Guid userId, int segmentId);
        /// </summary>
        [OperationContract]
        string ClipBySegmentId(Guid userId, int segmentId);

        /// <summary>
        /// string GetRelations(Guid userId, int segmentId);
        /// </summary>
        [OperationContract]
        string GetRelations(Guid userId, int segmentId);

        #endregion
    }


}
